package com.smartleanx.module.hrm.dal.mysql.companysystemtype;

import java.util.*;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.smartleanx.framework.common.pojo.PageResult;
import com.smartleanx.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.smartleanx.framework.mybatis.core.mapper.BaseMapperX;
import com.smartleanx.module.hrm.dal.dataobject.companysystemtype.CompanySystemTypeDO;
import org.apache.ibatis.annotations.Mapper;
import com.smartleanx.module.hrm.controller.admin.companysystemtype.vo.*;

/**
 * 公司制度库分类 Mapper
 *
 * @author 精益大师
 */
@Mapper
public interface CompanySystemTypeMapper extends BaseMapperX<CompanySystemTypeDO> {

    default PageResult<CompanySystemTypeDO> selectPage(CompanySystemTypePageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<CompanySystemTypeDO>()
                .likeIfPresent(CompanySystemTypeDO::getName, reqVO.getName())
                .eqIfPresent(CompanySystemTypeDO::getCode, reqVO.getCode())
                .eqIfPresent(CompanySystemTypeDO::getParentId, reqVO.getParentId())
                .betweenIfPresent(CompanySystemTypeDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(CompanySystemTypeDO::getId));
    }

    default List<CompanySystemTypeDO> getCompanySystemTypeList(String name) {
        return selectList(new LambdaQueryWrapperX<CompanySystemTypeDO>()
                .eqIfPresent(CompanySystemTypeDO::getName, name));
    }

    default List<CompanySystemTypeDO> getCompanySystemParentList(){
        return selectList(new LambdaQueryWrapper<CompanySystemTypeDO>()
        .eq(CompanySystemTypeDO::getParentId,0L));
    }

}
